﻿<!DOCTYPE HTML>
<html lang="zh">
<head>
<title>MouseGetPos - 语法 &amp; 使用 | AutoHotkey v2</title>
<meta name="description" content="The MouseGetPos function retrieves the current position of the mouse cursor, and optionally which window and control it is hovering over." />
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<link href="../static/theme.css" rel="stylesheet" type="text/css" />
<script src="../static/content.js" type="text/javascript"></script>
<script type="text/javascript">$(function(){0<=window.navigator.userAgent.toLowerCase().indexOf("ucbrowser")&&CaoNiMaDeUc()})</script>
</head>
<body>

<h1>MouseGetPos</h1>

<p>获取鼠标光标的当前位置, 以及它悬停在哪个窗口和控件上.</p>

<pre class="Syntax"><span class="func">MouseGetPos</span> <span class="optional">OutputVarX, OutputVarY, OutputVarWin, OutputVarControl, Flag</span></pre>
<h2 id="Parameters">参数</h2>
<dl>

  <dt>OutputVarX, OutputVarY</dt>
  <dd>
    <p>类型: <a href="../Concepts.htm#variable-references">VarRef</a></p>
    <p>用于存储 X 和 Y 坐标的变量的引用. 获取的坐标相对于活动窗口, 除非曾使用 <a href="CoordMode.htm">CoordMode</a> 改变为屏幕坐标.</p>
  </dd>

  <dt>OutputVarWin</dt>
  <dd>
        <p>类型: <a href="../Concepts.htm#variable-references">VarRef</a></p>
    <p>这个可选的参数是用来保存鼠标光标下窗口的<a href="../misc/WinTitle.htm#ahk_id">唯一 ID 号</a>的变量的引用. 如果无法检测到窗口, 则此变量被置空.</p>
    <p>即使窗口不处于活动状态, 也能检测到它的信息. 无法检测到隐藏窗口.</p>
  </dd>

  <dt>OutputVarControl</dt>
  <dd>
     <p>类型: <a href="../Concepts.htm#variable-references">VarRef</a></p>
    <p>这个可选的参数是用来保存鼠标光标下控件的类名(ClassNN) 的变量的引用. 如果无法检测到控件, 则此变量被置空.</p>
    <p>控件的名称应该总是和 Window Spy 中显示的相同. 然而, 与 Window Spy 不同的是, 即使鼠标光标下的窗口不处于活动状态, 也能检测到其中控件的信息.</p>
  </dd>

  <dt>Flag</dt>
  <dd>
    <p>类型: <a href="../Concepts.htm#numbers">整数</a></p>
    <p>如果省略或为 0, 函数使用默认方法来确定 <em>OutputVarControl</em> 并存储控件的 ClassNN. 要更改此行为, 加上以下一个或两个数字:</p>
    <p><strong>1</strong>: 使用更简单的方法来获取 <em>OutputVarControl</em>. 这种方法可以正确获取多文档界面(MDI) 应用程序(例如 SysEdit 或 TextPad) 的活动/顶级子窗口的信息. 不过, 对于其他的情况(例如获取 GroupBox 控件中的控件) 就没有那么准确了.</p>
    <p><strong>2</strong>: 把<a href="ControlGetHwnd.htm">控件的 HWND</a> 保存到 <em>OutputVarControl</em> 而不是<a href="ControlGetClassNN.htm">控件的 ClassNN</a>.</p>
    <p>例如, 要使上面两个选项都生效, <em>Flag</em> 参数必须设置为 3(1+2).</p>
  </dd>

</dl>

<h2 id="Remarks">备注</h2>
<p>如果不需要相应的信息, 则可以省略相应的输出变量.</p>
<h2 id="Related">相关</h2>
<p><a href="CoordMode.htm">CoordMode</a>, <a href="Win.htm">Win 函数</a>, <a href="SetDefaultMouseSpeed.htm">SetDefaultMouseSpeed</a>, <a href="Click.htm">Click</a></p>
<h2 id="Examples">示例</h2>
<div class="ex" id="ExBasic">
<p><a class="ex_number" href="#ExBasic"></a> 报告鼠标光标的位置.</p>
<pre>MouseGetPos &amp;xpos, &amp;ypos 
MsgBox "The cursor is at X" xpos " Y" ypos</pre>
</div>

<div class="ex" id="ExWatchCursor">
<p><a class="ex_number" href="#ExWatchCursor"></a> 允许移动鼠标来查看鼠标光标悬停窗口的标题.</p>
<pre>SetTimer WatchCursor, 100

WatchCursor()
{
    MouseGetPos , , &amp;id, &amp;control
    ToolTip
    (
        "ahk_id " id "
        ahk_class " WinGetClass(id) "
        " WinGetTitle(id) "
        Control: " control
    )
}</pre>
</div>

</body>
</html>